home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1254.txt < prev    next >
Text File  |  1997-04-01  |  68KB  |  1,403 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          A. Mankin
  8. Request for Comments: 1254                                         MITRE
  9.                                                          K. Ramakrishnan
  10.                                            Digital Equipment Corporation
  11.                                                                  Editors
  12.                                                              August 1991
  13.  
  14.  
  15.                    Gateway Congestion Control Survey
  16.  
  17. Status of this Memo
  18.  
  19.    This memo provides information for the Internet community.  It is a
  20.    survey of some of the major directions and issues.  It does not
  21.    specify an Internet standard.  Distribution of this memo is
  22.    unlimited.
  23.  
  24. Abstract
  25.  
  26.    The growth of network intensive Internet applications has made
  27.    gateway congestion control a high priority.  The IETF Performance and
  28.    Congestion Control Working Group surveyed and reviewed gateway
  29.    congestion control and avoidance approaches.  The purpose of this
  30.    paper is to present our review of the congestion control approaches,
  31.    as a way of encouraging new discussion and experimentation.  Included
  32.    in the survey are Source Quench, Random Drop, Congestion Indication
  33.    (DEC Bit), and Fair Queueing.  The task remains for Internet
  34.    implementors to determine and agree on the most effective mechanisms
  35.    for controlling gateway congestion.
  36.  
  37. 1.  Introduction
  38.  
  39.    Internet users regularly encounter congestion, often in mild forms.
  40.    However, severe congestion episodes have been reported also; and
  41.    gateway congestion remains an obstacle for Internet applications such
  42.    as scientific supercomputing data transfer.  The need for Internet
  43.    congestion control originally became apparent during several periods
  44.    of 1986 and 1987, when the Internet experienced the "congestion
  45.    collapse" condition predicted by Nagle [Nag84].  A large number of
  46.    widely dispersed Internet sites experienced simultaneous slowdown or
  47.    cessation of networking services for prolonged periods.  BBN, the
  48.    firm responsible for maintaining the then backbone of the Internet,
  49.    the ARPANET, responded to the collapse by adding link capacity
  50.    [Gar87].
  51.  
  52.    Much of the Internet now uses as a transmission backbone the National
  53.    Science Foundation Network (NSFNET). Extensive monitoring and
  54.    capacity planning are being done for the NSFNET backbone; still, as
  55.  
  56.  
  57.  
  58. Performance and Congestion Control Working Group                [Page 1]
  59.  
  60. RFC 1254           Gateway Congestion Control Survey         August 1991
  61.  
  62.  
  63.    the demand for this capacity grows, and as resource-intensive
  64.    applications such as wide-area file system management [Sp89]
  65.    increasingly use the backbone, effective congestion control policies
  66.    will be a critical requirement.
  67.  
  68.    Only a few mechanisms currently exist in Internet hosts and gateways
  69.    to avoid or control congestion.  The mechanisms for handling
  70.    congestion set forth in the specifications for the DoD Internet
  71.    protocols are limited to:
  72.  
  73.       Window flow control in TCP [Pos81b], intended primarily for
  74.       controlling the demand on the receiver's capacity, both in terms
  75.       of processing and buffers.
  76.  
  77.       Source quench in ICMP, the message sent by IP to request that a
  78.       sender throttle back [Pos81a].
  79.  
  80.    One approach to enhancing Internet congestion control has been to
  81.    overlay the simple existing mechanisms in TCP and ICMP with more
  82.    powerful ones.  Since 1987, the TCP congestion control policy, Slow-
  83.    start, a collection of several algorithms developed by Van Jacobson
  84.    and Mike Karels [Jac88], has been widely adopted. Successful Internet
  85.    experiences with Slow-start led to the Host Requirements RFC [HREQ89]
  86.    classifying the algorithms as mandatory for TCP.  Slow-start modifies
  87.    the user's demand when congestion reaches such a point that packets
  88.    are dropped at the gateway.  By the time such overflows occur, the
  89.    gateway is congested.  Jacobson writes that the Slow-start policy is
  90.    intended to function best with a complementary gateway policy
  91.    [Jac88].
  92.  
  93. 1.1  Definitions
  94.  
  95.    The characteristics of the Internet that we are interested in include
  96.    that it is, in general, an arbitrary mesh-connected network.  The
  97.    internetwork protocol is connectionless.  The number of users that
  98.    place demands on the network is not limited by any explicit
  99.    mechanism; no reservation of resources occurs and transport layer
  100.    set-ups are not disallowed due to lack of resources.  A path from a
  101.    source to destination host may have multiple hops, through several
  102.    gateways and links.  Paths through the Internet may be heterogeneous
  103.    (though homogeneous paths also exist and experience congestion).
  104.    That is, links may be of different speeds.  Also, the gateways and
  105.    hosts may be of different speeds or may be providing only a part of
  106.    their processing power to communication-related activity.  The
  107.    buffers for storing information flowing through Internet gateways are
  108.    finite.  The nature of the internet protocol is to drop packets when
  109.    these buffers overflow.
  110.  
  111.  
  112.  
  113.  
  114. Performance and Congestion Control Working Group                [Page 2]
  115.  
  116. RFC 1254           Gateway Congestion Control Survey         August 1991
  117.  
  118.  
  119.    Gateway congestion arises when the demand for one or more of the
  120.    resources of the gateway exceeds the capacity of that resource.  The
  121.    resources include transmission links, processing, and space used for
  122.    buffering.  Operationally, uncongested gateways operate with little
  123.    queueing on average, where the queue is the waiting line for a
  124.    particular resource of the gateway.  One commonly used quantitative
  125.    definition [Kle79] for when a resource is congested is when the
  126.    operating point is greater than the point at which resource power is
  127.    maximum, where resource power is defined as the ratio of throughput
  128.    to delay (See Section 2.2).  At this operating point, the average
  129.    queue size is close to one, including the packet in service.  Note
  130.    that this is a long-term average queue size.  Several definitions
  131.    exist for the timescale of averaging for congestion detection and
  132.    control, such as dominant round-trip time and queue regeneration
  133.    cycle (see Section 2.1).
  134.  
  135.    Mechanisms for handling congestion may be divided into two
  136.    categories, congestion recovery and congestion avoidance.  Congestion
  137.    recovery tries to restore an operating state, when demand has already
  138.    exceeded capacity.  Congestion avoidance is preventive in nature.  It
  139.    tries to keep the demand on the network at or near the point of
  140.    maximum power, so that congestion never occurs.  Without congestion
  141.    recovery, the network may cease to operate entirely (zero
  142.    throughput), whereas the Internet has been operating without
  143.    congestion avoidance for a long time.  Overall performance may
  144.    improve with an effective congestion avoidance mechanism.  Even if
  145.    effective congestion avoidance was in place, congestion recovery
  146.    schemes would still be required, to retain throughput in the face of
  147.    sudden changes (increase of demand, loss of resources) that can lead
  148.    to congestion.
  149.  
  150.    In this paper, the term "user" refers to each individual transport
  151.    (TCP or another transport protocol) entity.  For example, a TCP
  152.    connection is a "user" in this terminology.  The terms "flow" and
  153.    "stream" are used by some authors in the same sense.  Some of the
  154.    congestion control policies discussed in this paper, such as
  155.    Selective Feedback Congestion Indication and Fair Queueing aggregate
  156.    multiple TCP connections from a single host (or between a source
  157.    host-destination host pair) as a virtual user.
  158.  
  159.    The term "cooperating transport entities" will be defined as a set of
  160.    TCP connections (for example) which follow an effective method of
  161.    adjusting their demand on the Internet in response to congestion.
  162.    The most restrictive interpretation of this term is that the
  163.    transport entities follow identical algorithms for congestion control
  164.    and avoidance.  However, there may be some variation in these
  165.    algorithms.  The extent to which heterogeneous end-system congestion
  166.    control and avoidance may be accommodated by gateway policies should
  167.  
  168.  
  169.  
  170. Performance and Congestion Control Working Group                [Page 3]
  171.  
  172. RFC 1254           Gateway Congestion Control Survey         August 1991
  173.  
  174.  
  175.    be a subject of future research. The role played in Internet
  176.    performance of non-cooperating transport entities is discussed in
  177.    Section 5.
  178.  
  179. 1.2  Goals and Scope of This Paper
  180.  
  181.    The task remains for Internet implementors to determine effective
  182.    mechanisms for controlling gateway congestion.  There has been
  183.    minimal common practice on which to base recommendations for Internet
  184.    gateway congestion control.  In this survey, we describe the
  185.    characteristics of one experimental gateway congestion management
  186.    policy, Random Drop, and several that are better-known:  Source
  187.    Quench, Congestion Indication, Selective Feedback Congestion
  188.    Indication, and Fair Queueing, both Bit-Round and Stochastic.  A
  189.    motivation for documenting Random Drop is that it has as primary
  190.    goals low overhead and suitability for scaling up for Internets with
  191.    higher speed links.  Both of these are important goals for future
  192.    gateway implementations that will have fast links, fast processors,
  193.    and will have to serve large numbers of interconnected hosts.
  194.  
  195.    The structure of this paper is as follows.  First, we discuss
  196.    performance goals, including timescale and fairness considerations.
  197.    Second, we discuss the gateway congestion control policies.  Random
  198.    Drop is sketched out, with a recommendation for using it for
  199.    congestion recovery and a separate section on its use as congestion
  200.    avoidance.  Third, since gateway congestion control in itself does
  201.    not change the end-systems' demand, we briefly present the effective
  202.    responses to these policies by two end-system congestion control
  203.    schemes, Slow-start and End-System Congestion Indication.  Among our
  204.    conclusions, we address the issues of transport entities that do not
  205.    cooperate with gateway congestion control.  As an appendix, because
  206.    of the potential interactions with gateway congestion policies, we
  207.    report on a scheme to help in controlling the performance of Internet
  208.    gateways to connection-oriented subnets (in particular, X.25).
  209.  
  210.    Resources in the current Internet are not charged to users of them.
  211.    Congestion avoidance techniques cannot be expected to help when users
  212.    increase beyond the capacity of the underlying facilities.  There are
  213.    two possible solutions for this, increase the facilities and
  214.    available bandwidth, or forcibly reduce the demand.  When congestion
  215.    is persistent despite implemented congestion control mechanisms,
  216.    administrative responses are needed.  These are naturally not within
  217.    the scope of this paper.  Also outside the scope of this paper are
  218.    routing techniques that may be used to relocate demand away from
  219.    congested individual resources (e.g., path-splitting and load-
  220.    balancing).
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Performance and Congestion Control Working Group                [Page 4]
  227.  
  228. RFC 1254           Gateway Congestion Control Survey         August 1991
  229.  
  230.  
  231. 2.  Performance Goals
  232.  
  233.    To be able to discuss design and use of various mechanisms for
  234.    improving Internetwork performance, we need to have clear performance
  235.    goals for the operation of gateways and sets of end-systems.
  236.    Internet experience shows that congestion control should be based on
  237.    adaptive principles; this requires efficient computation of metrics
  238.    by algorithms for congestion control.  The first issue is that of the
  239.    interval over which these metrics are estimated and/or measured.
  240.  
  241. 2.1  Interval for Measurement/Estimation of Performance Metrics
  242.  
  243.    Network performance metrics may be distorted if they are computed
  244.    over intervals that are too short or too long relative to the dynamic
  245.    characteristics of the network.  For instance, within a small
  246.    interval, two FTP users with equal paths may appear to have sharply
  247.    different demands, as an effect of brief, transient fluctuations in
  248.    their respective processing.  An overly long averaging interval
  249.    results in distortions because of the changing number of users
  250.    sharing the resource measured during the time.  It is similarly
  251.    important for congestion control mechanisms exerted at end systems to
  252.    find an appropriate interval for control.
  253.  
  254.    The first approach to the monitoring, or averaging, interval for
  255.    congestion control is one based on round-trip times.  The rationale
  256.    for it is as follows:  control mechanisms must adapt to changes in
  257.    Internet congestion as quickly as possible.  Even on an uncongested
  258.    path, changed conditions will not be detected by the sender faster
  259.    than a round-trip time.  The effect of a sending end-system's control
  260.    will also not be seen in less than a round-trip time in the entire
  261.    path as well as at the end systems.  For the control mechanism to be
  262.    adaptive, new information on the path is needed before making a
  263.    modification to the control exerted.  The statistics and metrics used
  264.    in congestion control must be able to provide information to the
  265.    control mechanism so that it can make an informed decision.
  266.    Transient information which may be obsolete before a change is made
  267.    by the end-system should be avoided.  This implies the
  268.    monitoring/estimating interval is one lasting one or more round
  269.    trips.  The requirements described here give bounds on:
  270.  
  271.       How short an interval:  not small enough that obsolete information
  272.       is used for control;
  273.  
  274.       How long:  not more than the period at which the end-system makes
  275.       changes.
  276.  
  277.    But, from the point of view of the gateway congestion control policy,
  278.    what is a round-trip time?  If all the users of a given gateway have
  279.  
  280.  
  281.  
  282. Performance and Congestion Control Working Group                [Page 5]
  283.  
  284. RFC 1254           Gateway Congestion Control Survey         August 1991
  285.  
  286.  
  287.    the same path through the Internet, they also have the same round-
  288.    trip time through the gateway.  But this is rarely the case.
  289.  
  290.    A meaningful interval must be found for users with both short and
  291.    long paths. Two approaches have been suggested for estimating this
  292.    dynamically, queue regeneration cycle and frequency analysis.
  293.  
  294.    Use of the queue regeneration cycle has been described as part of the
  295.    Congestion Indication policy.  The time period used for averaging
  296.    here begins when a resource goes from the idle to busy state.  The
  297.    basic interval for averaging is a "regeneration cycle" which is in
  298.    the form of busy and idle intervals.  Because an average based on a
  299.    single previous regeneration may become old information, the
  300.    recommendation in [JRC87] is to average over the sum of two
  301.    intervals, that is, the previous (busy and idle) period, and the time
  302.    since the beginning of the current busy period.
  303.  
  304.    If the gateway users are window-based transport entities, it is
  305.    possible to see how the regeneration interval responds to their
  306.    round-trip times.  If a user with a long round-trip time has the
  307.    dominant traffic, the queue length may be zero only when that user is
  308.    awaiting acknowledgements.  Then the users with short paths will
  309.    receive gateway congestion information that is averaged over several
  310.    of their round-trip times.  If the short path traffic dominates the
  311.    activity in the gateway, i.e., the connections with shorter round-
  312.    trip times are the dominant users of the gateway resources, then the
  313.    regeneration interval is shorter and the information communicated to
  314.    them can be more timely. In this case, users with longer paths
  315.    receive, in one of their round-trip times, multiple samples of the
  316.    dominant traffic; the end system averaging is based on individual
  317.    user's intervals, so that these multiple samples are integrated
  318.    appropriately for these connections with longer paths.
  319.  
  320.    The use of frequency analysis has been described by [Jac89]. In this
  321.    approach, the gateway congestion control is done at intervals based
  322.    on spectral analysis of the traffic arrivals.  It is possible for
  323.    users to have round-trip times close to each other, but be out of
  324.    phase from each other. A spectral analysis algorithm detects this.
  325.    Otherwise, if multiple round-trip times are significant, multiple
  326.    intervals will be identified.  Either one of these will be
  327.    predominant, or several will be comparable. An as yet difficult
  328.    problem for the design of algorithms accomplishing this technique is
  329.    the likelihood of "locking" to the frequency of periodic traffic of
  330.    low intensity, such as routing updates.
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Performance and Congestion Control Working Group                [Page 6]
  339.  
  340. RFC 1254           Gateway Congestion Control Survey         August 1991
  341.  
  342.  
  343. 2.2  Power and its Relationship to the Operating Point
  344.  
  345.    Performance goals for a congestion control/avoidance strategy embody
  346.    a conflict in that they call for as high a throughput as possible,
  347.    with as little delay as possible.  A measure that is often used to
  348.    reflect the tradeoff between these goals is power, the ratio of
  349.    throughput to delay.  We would like to maximize the value of power
  350.    for a given resource.  In the standard expression for power,
  351.  
  352.      Power = (Throughput^alpha)/Delay
  353.  
  354.    the exponent alpha is chosen for throughput, based on the relative
  355.    emphasis placed on throughput versus delay: if throughput is more
  356.    important, then a value of A alpha greater than one is chosen.  If
  357.    throughput and delay are equally important (e.g., both bulk transfer
  358.    traffic and interactive traffic are equally important), then alpha
  359.    equal to one is chosen. The operating point where power is maximized
  360.    is the "knee" in the throughput and delay curves.  It is desirable
  361.    that the operating point of the resource be driven towards the knee,
  362.    where power is maximized.  A useful property of power is that it is
  363.    decreasing whether the resource is under- or over-utilized relative
  364.    to the knee.
  365.  
  366.    In an internetwork comprising nodes and links of diverse speeds and
  367.    utilization, bottlenecks or concentrations of demand may form.  Any
  368.    particular user can see a single bottleneck, which is the slowest or
  369.    busiest link or gateway in the path (or possibly identical "balanced"
  370.    bottlenecks).  The throughput that the path can sustain is limited by
  371.    the bottleneck.  The delay for packets through a particular path is
  372.    determined by the service times and queueing at each individual hop.
  373.    The queueing delay is dominated by the queueing at the bottleneck
  374.    resource(s).  The contribution to the delay over other hops is
  375.    primarily the service time, although the propagation delay over
  376.    certain hops, such as a satellite link, can be significant.  We would
  377.    like to operate all shared resources at their knee and maximize the
  378.    power of every user's bottleneck.
  379.  
  380.    The above goal underscores the significance of gateway congestion
  381.    control.  If techniques can be found to operate gateways at their
  382.    resource knee, it can improve Internet performance broadly.
  383.  
  384. 2.3  Fairness
  385.  
  386.    We would like gateways to allocate resources fairly to users.  A
  387.    concept of fairness is only relevant when multiple users share a
  388.    gateway and their total demand is greater than its capacity.  If
  389.    demands were equal, a fair allocation of the resource would be to
  390.    provide an equal share to each user.  But even over short intervals,
  391.  
  392.  
  393.  
  394. Performance and Congestion Control Working Group                [Page 7]
  395.  
  396. RFC 1254           Gateway Congestion Control Survey         August 1991
  397.  
  398.  
  399.    demands are not equal.  Identifying the fair share of the resource
  400.    for the user becomes hard.  Having identified it, it is desirable to
  401.    allocate at least this fair share to each user.  However, not all
  402.    users may take advantage of this allocation.  The unused capacity can
  403.    be given to other users.  The resulting final allocation is termed a
  404.    maximally fair allocation.  [RJC87] gives a quantitative method for
  405.    comparing the allocation by a given policy to the maximally fair
  406.    allocation.
  407.  
  408.    It is known that the Internet environment has heterogeneous transport
  409.    entities, which do not follow the same congestion control policies
  410.    (our definition of cooperating transports). Then, the controls given
  411.    by a gateway may not affect all users and the congestion control
  412.    policy may have unequal effects.  Is "fairness" obtainable in such a
  413.    heterogeneous community?  In Fair Queueing, transport entities with
  414.    differing congestion control policies can be insulated from each
  415.    other and each given a set share of gateway bandwidth.
  416.  
  417.    It is important to realize that since Internet gateways cannot refuse
  418.    new users, fairness in gateway congestion control can lead to all
  419.    users receiving small (sub-divided) amounts of the gateway resources
  420.    inadequate to meet their performance requirements.  None of the
  421.    policies described in this paper currently addresses this.  Then,
  422.    there may be policy reasons for unequal allocation of the gateway
  423.    resources.  This has been addressed by Bit-Round Fair Queueing.
  424.  
  425. 2.4  Network Management
  426.  
  427.    Network performance goals may be assessed by measurements in either
  428.    the end-system or gateway frame of reference.  Performance goals are
  429.    often resource-centered and the measurement of the global performance
  430.    of "the network," is not only difficult to measure but is also
  431.    difficult to define.  Resource-centered metrics are more easily
  432.    obtained, and do not require synchronization.  That resource-centered
  433.    metrics are appropriate ones for use in optimization of power is
  434.    shown by [Jaf81].
  435.  
  436.    It would be valuable for the goal of developing effective gateway
  437.    congestion handling if Management Information Base (MIB) objects
  438.    useful for evaluating gateway congestion were developed.  The
  439.    reflections on the control interval described above should be applied
  440.    when network management applications are designed for this purpose.
  441.    In particular, obtaining an instantaneous queue length from the
  442.    managed gateway is not meaningful for the purposes of congestion
  443.    management.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Performance and Congestion Control Working Group                [Page 8]
  451.  
  452. RFC 1254           Gateway Congestion Control Survey         August 1991
  453.  
  454.  
  455. 3.  Gateway Congestion Control Policies
  456.  
  457.    There have been proposed a handful of approaches to dealing with
  458.    congestion in the gateway. Some of these are Source Quench, Random
  459.    Drop, Congestion Indication, Selective Feedback Congestion
  460.    Indication, Fair Queueing, and Bit-Round Fair Queueing.  They differ
  461.    in whether they use a control message, and indeed, whether they view
  462.    control of the end-systems as necessary, but none of them in itself
  463.    lowers the demand of users and consequent load on the network.  End-
  464.    system policies that reduce demand in conjunction with gateway
  465.    congestion control are described in Section 4.
  466.  
  467. 3.1  Source Quench
  468.  
  469.    The method of gateway congestion control currently used in the
  470.    Internet is the Source Quench message of the RFC-792 [Pos81a]
  471.    Internet Control Message Protocol (ICMP). When a gateway responds to
  472.    congestion by dropping datagrams, it may send an ICMP Source Quench
  473.    message to the source of the dropped datagram.  This is a congestion
  474.    recovery policy.
  475.  
  476.    The Gateway Requirements RFC, RFC-1009 [GREQ87], specifies that
  477.    gateways should only send Source Quench messages with a limited
  478.    frequency, to conserve CPU resources during the time of heavy load.
  479.    We note that operating the gateway for long periods under such loaded
  480.    conditions should be averted by a gateway congestion control policy.
  481.    A revised Gateway Requirements RFC is being prepared by the IETF.
  482.  
  483.    Another significant drawback of the Source Quench policy is that its
  484.    details are discretionary, or, alternatively, that the policy is
  485.    really a family of varied policies.  Major Internet gateway
  486.    manufacturers have implemented a variety of source quench
  487.    frequencies.  It is impossible for the end-system user on receiving a
  488.    Source Quench to be certain of the circumstances in which it was
  489.    issued.  This makes the needed end-system response problematic:  is
  490.    the Source Quench an indication of heavy congestion, approaching
  491.    congestion, a burst causing massive overload, or a burst slightly
  492.    exceeding reasonable load?
  493.  
  494.    To the extent that gateways drop the last arrived datagram on
  495.    overload, Source Quench messages may be distributed unfairly.  This
  496.    is because the position at the end of the queue may be unfairly often
  497.    occupied by the packets of low demand, intermittent users, since
  498.    these do not send regular bursts of packets that can preempt most of
  499.    the queue space.
  500.  
  501.    [Fin89] developed algorithms for when to issue Source Quench and for
  502.    responding to it with a rate-reduction in the IP layer on the sending
  503.  
  504.  
  505.  
  506. Performance and Congestion Control Working Group                [Page 9]
  507.  
  508. RFC 1254           Gateway Congestion Control Survey         August 1991
  509.  
  510.  
  511.    host.  The system controls end-to-end performance of connections in a
  512.    manner similar to the congestion avoidance portion of Slow-start TCP
  513.    [Jac88].
  514.  
  515. 3.2  Random Drop
  516.  
  517.    Random Drop is a gateway congestion control policy intended to give
  518.    feedback to users whose traffic congests the gateway by dropping
  519.    packets on a statistical basis.  The key to this policy is the
  520.    hypothesis that a packet randomly selected from all incoming traffic
  521.    will belong to a particular user with a probability proportional to
  522.    the average rate of transmission of that user.  Dropping a randomly
  523.    selected  packet results in users which generate much traffic having
  524.    a greater number of packets dropped compared with those generating
  525.    little traffic.  The selection of packets to be dropped is completely
  526.    uniform.  Therefore, a user who generates traffic of an amount below
  527.    the "fair share" (as defined in Section 2.3) may also experience a
  528.    small amount of packet loss at a congested gateway. This character of
  529.    uniformity is in fact a primary goal that Random Drop attempts to
  530.    achieve.
  531.  
  532.    The other primary goal that Random Drop attempts to achieve is a
  533.    theoretical overhead which is scaled to the number of shared
  534.    resources in the gateway rather than the number of its users.  If a
  535.    gateway congestion algorithm has more computation the more users
  536.    there are, this can lead to processing demands that are higher as
  537.    congestion increases.  Also the low-overhead goal of Random Drop
  538.    addresses concerns about the scale of gateway processing that will be
  539.    required in the mid-term Internet as gateways with fast processors
  540.    and links are shared by very large active sets of users.
  541.  
  542. 3.2.1  For Congestion Recovery
  543.  
  544.    Random Drop has been proposed as an improvement to packet dropping at
  545.    the operating point where the gateway's packet buffers overflow.
  546.    This is using Random Drop strictly as a congestion recovery
  547.    mechanism.
  548.  
  549.    In Random Drop congestion recovery, instead of dropping the last
  550.    packet to arrive at the queue, a packet is selected randomly from the
  551.    queue.  Measurements of an implementation of Random Drop Congestion
  552.    Recovery [Man90] showed that a user with a low demand, due to a
  553.    longer round-trip time path than other users of the gateway, had a
  554.    higher drop rate with RDCR than without.  The throughput accorded to
  555.    users with the same round-trip time paths was nearly equal with RDCR
  556.    as compared to without it.  These results suggest that RDCR should be
  557.    avoided unless it is used within a scheme that groups traffic more or
  558.    less by round-trip time.
  559.  
  560.  
  561.  
  562. Performance and Congestion Control Working Group               [Page 10]
  563.  
  564. RFC 1254           Gateway Congestion Control Survey         August 1991
  565.  
  566.  
  567. 3.2.2  For Congestion Avoidance
  568.  
  569.    Random Drop is also proposed as a congestion avoidance policy
  570.    [Jac89].  The intent is to initiate dropping packets when the gateway
  571.    is anticipated to become congested and remain so unless there is some
  572.    control exercised.  This  implies  selection  of  incoming packets to
  573.    be randomly dropped at a rate derived from identifying the level of
  574.    congestion at the gateway.  The rate is the number of arrivals
  575.    allowed between drops. It depends on the current operating point and
  576.    the prediction of congestion.
  577.  
  578.    A part of the policy is to determine that congestion will soon occur
  579.    and that the gateway is beginning to operate beyond the knee of the
  580.    power curve.  With a suitably chosen interval (Section 2.1), the
  581.    number of packets from each individual user in a sample over that
  582.    interval is proportional to each user's demand on the gateway.  Then,
  583.    dropping one or more random packets indicates to some user(s) the
  584.    need to reduce the level of demand that is driving the gateway beyond
  585.    the desired operating point.  This is the goal that a policy of
  586.    Random Drop for congestion avoidance attempts to achieve.
  587.  
  588.    There are several parameters to be determined for a Random Drop
  589.    congestion avoidance policy. The first is an interval, in terms of
  590.    number of packet arrivals, over which packets are dropped with
  591.    uniform probability.  For instance, in a sample implementation, if
  592.    this interval spanned 2000 packet arrivals, and a suitable
  593.    probability of drop was 0.001, then two random variables would be
  594.    drawn in a uniform distribution in the range of 1 to 2,000.  The
  595.    values drawn would be used by counting to select the packets dropped
  596.    at arrival.  The second parameter is the value for the probability of
  597.    drop.  This parameter would be a function of an estimate of the
  598.    number of users, their appropriate control intervals, and possibly
  599.    the length of time that congestion has persisted.  [Jac89] has
  600.    suggested successively increasing the probability of drop when
  601.    congestion persists over multiple control intervals.  The motivation
  602.    for increasing the packet drop probability is that the implicit
  603.    estimate of the number of users and random selection of their packets
  604.    to drop does not guarantee that all users have received enough
  605.    signals to decrease demand.  Increasing the probability of drop
  606.    increases the probability that enough feedback is provided.
  607.    Congestion detection is also needed in Random Drop congestion
  608.    avoidance, and could be implemented in a variety of ways.  The
  609.    simplest is a static threshold, but dynamically averaged measures of
  610.    demand or utilization are suggested.
  611.  
  612.    The packets dropped in Random Drop congestion avoidance would not be
  613.    from the initial inputs to the gateway.  We suggest that they would
  614.    be selected only from packets destined for the resource which is
  615.  
  616.  
  617.  
  618. Performance and Congestion Control Working Group               [Page 11]
  619.  
  620. RFC 1254           Gateway Congestion Control Survey         August 1991
  621.  
  622.  
  623.    predicted to be approaching congestion.  For example, in the case of
  624.    a gateway with multiple outbound links, access to each individual
  625.    link is treated as a separate resource, the Random Drop policy is
  626.    applied at each link independently.  Random Drop congestion avoidance
  627.    would provide uniform treatment of all cooperating transport users,
  628.    even over individual patterns of traffic multiplexed within one
  629.    user's stream.  There is no aggregation of users.
  630.  
  631.    Simulation studies [Zha89], [Has90] have presented evidence that
  632.    Random Drop is not fair across cooperating and non-cooperating
  633.    transport users.  A transport user whose sending policies included
  634.    Go-Back-N retransmissions and did not include Slow-start received an
  635.    excessive share of bandwidth from a simple implementation of Random
  636.    Drop.  The simultaneously active Slow-start users received unfairly
  637.    low shares.  Considering this, it can be seen that when users do not
  638.    respond to control, over a prolonged period, the Random Drop
  639.    congestion avoidance mechanism would have an increased probability of
  640.    penalizing users with lower demand.  Their packets dropped, these
  641.    users exert the controls leading to their giving up bandwidth.
  642.  
  643.    Another problem can be seen to arise in Random Drop [She89] across
  644.    users whose communication paths are of different lengths.  If the
  645.    path spans congested resources at multiple gateways, then the user's
  646.    probability of receiving an unfair drop and subsequent control (if
  647.    cooperating) is exponentially increased.  This is a significant
  648.    scaling problem.
  649.  
  650.    Unequal paths cause problems for other congestion avoidance policies
  651.    as well.  Selective Feedback Congestion Indication was devised to
  652.    enhance Congestion Indication specifically because of the problem of
  653.    unequal paths.  In Fair Queueing by source-destination pairs, each
  654.    path gets its own queue in all the gateways.
  655.  
  656. 3.3  Congestion Indication
  657.  
  658.    The Congestion Indication policy is often referred to as the DEC Bit
  659.    policy. It was developed at DEC [JRC87], originally for the Digital
  660.    Network Architecture (DNA).  It has also been specified for the
  661.    congestion avoidance of the ISO protocols TP4 and CLNP [NIST88].
  662.    Like Source Quench, it uses explicit communications from the
  663.    congested gateway to the user.  However, to use the lowest possible
  664.    network resources for indicating congestion, the information is
  665.    communicated in a single bit, the Congestion Experienced Bit, set in
  666.    the network header of the packets already being forwarded by a
  667.    gateway.  Based on the condition of this bit, the end-system user
  668.    makes an adjustment to the sending window. In the NSP transport
  669.    protocol of DECNET, the source makes an adjustment to its window; in
  670.    the ISO transport protocol, TP4, the destination makes this
  671.  
  672.  
  673.  
  674. Performance and Congestion Control Working Group               [Page 12]
  675.  
  676. RFC 1254           Gateway Congestion Control Survey         August 1991
  677.  
  678.  
  679.    adjustment in the window offered to the sender.
  680.  
  681.    This policy attempts to avoid congestion by setting the bit whenever
  682.    the average queue length over the previous queue regeneration cycle
  683.    plus part of the current cycle is one or more.  The feedback is
  684.    determined independently at each resource.
  685.  
  686. 3.4  Selective Feedback Congestion Indication
  687.  
  688.    The simple Congestion Indication policy works based upon the total
  689.    demand on the gateway.  The total number of users or the fact that
  690.    only a few of the users might be causing congestion is not
  691.    considered.  For fairness, only those users who are sending more than
  692.    their fair share should be asked to reduce their load, while others
  693.    could attempt to increase where possible.  In Selective Feedback
  694.    Congestion Indication, the Congestion Experienced Bit is used to
  695.    carry out this goal.
  696.  
  697.    Selective Feedback works by keeping a count of the number of packets
  698.    sent by different users since the beginning of the queue averaging
  699.    interval.  This is equivalent to monitoring their throughputs. Based
  700.    on the total throughput, a fair share for each user is determined and
  701.    the congestion bit is set, when congestion approaches, for the users
  702.    whose demand is higher than their fair share.  If the gateway is
  703.    operating below the throughput-delay knee, congestion indications are
  704.    not set.
  705.  
  706.    A min-max algorithm used to determine the fair share of capacity and
  707.    other details of this policy are described in [RJC87].  One parameter
  708.    to be computed is the capacity of each resource to be divided among
  709.    the users.  This metric depends on the distribution of inter-arrival
  710.    times and packet sizes of the users.  Attempting to determine these
  711.    in real time in the gateway is unacceptable.  The capacity is instead
  712.    estimated from on the throughput seen when the gateway is operating
  713.    in congestion, as indicated by the average queue length.  In
  714.    congestion (above the knee), the service rate of the gateway limits
  715.    its throughput.  Multiplying the throughput obtained at this
  716.    operating point by a capacity factor (between 0.5 and 0.9) to adjust
  717.    for the distributions yields an acceptable capacity estimate in
  718.    simulations.
  719.  
  720.    Selective Feedback Congestion Indication takes as input a vector of
  721.    the number of packets sent by each source-destination pair of end-
  722.    systems.  Other alternatives include 1) destination address, 2)
  723.    input/output link, and 3) transport connection (source/destination
  724.    addresses and ports).
  725.  
  726.    These alternatives give different granularities for fairness.  In the
  727.  
  728.  
  729.  
  730. Performance and Congestion Control Working Group               [Page 13]
  731.  
  732. RFC 1254           Gateway Congestion Control Survey         August 1991
  733.  
  734.  
  735.    case where paths are the same or round-trip times of users are close
  736.    together, throughputs are equalized similarly by basing the selective
  737.    feedback on source or destination address.  In fact, if the RTTs are
  738.    close enough, the simple congestion indication policy would result in
  739.    a fair allocation.  Counts based on source/destination pairs ensure
  740.    that paths with different lengths and network conditions get a fair
  741.    throughput at the individual gateways.  Counting packets based on
  742.    link pairs has a low overhead, but may result in unfairness to users
  743.    whose demand is below the fair share and are using a long path.
  744.    Counts based on transport layer connection identifiers, if this
  745.    information was available to Internet gateways, would make good
  746.    distinctions, since the differences of demand of different
  747.    applications and instances of applications would be separately
  748.    monitored.
  749.  
  750.    Problems with Selective Feedback Congestion Indication include that
  751.    the gateway has significant processing to do.  With the feasible
  752.    choice of aggregation at the gateway, unfairness across users within
  753.    the group is likely.  For example, an interactive connection
  754.    aggregated with one or more bulk transfer connections will receive
  755.    congestion indications though its own use of the gateway resources is
  756.    very low.
  757.  
  758. 3.5  Fair Queueing
  759.  
  760.    Fair Queueing is the policy of maintaining separate gateway output
  761.    queues for individual end-systems by source-destination pair.  In the
  762.    policy as proposed by [Nag85], the gateway's processing and link
  763.    resources are distributed to the end-systems on a round-robin basis.
  764.    On congestion, packets are dropped from the longest queue.  This
  765.    policy leads to equal allocations of resources to each source-
  766.    destination pair.  A source-destination pair that demands more than a
  767.    fair share simply increases its own queueing delay and congestion
  768.    drops.
  769.  
  770. 3.5.1  Bit-Round Fair Queueing
  771.  
  772.    An enhancement of Nagle Fair Queueing, the Bit-Round Fair Queuing
  773.    algorithm described and simulated by [DKS89] addresses several
  774.    shortcomings of Nagle's scheme. It computes the order of service to
  775.    packets using their lengths, with a technique that emulates a bit-
  776.    by-bit round-robin discipline, so that long packets do not get an
  777.    advantage over short ones.  Otherwise the round-robin would be
  778.    unfair, for example, giving more bandwidth to hosts whose traffic is
  779.    mainly long packets than to hosts sourcing short packets.
  780.  
  781.    The aggregation of users of a source-destination pair by Fair
  782.    Queueing has the property of grouping the users whose round-trips are
  783.  
  784.  
  785.  
  786. Performance and Congestion Control Working Group               [Page 14]
  787.  
  788. RFC 1254           Gateway Congestion Control Survey         August 1991
  789.  
  790.  
  791.    similar. This may be one reason that the combination of Bit-Round
  792.    Fair Queueing with Congestion Indication had particularly good
  793.    simulated performance in [DKS89].
  794.  
  795.    The aggregation of users has the expected drawbacks, as well.  A
  796.    TELNET user in a queue with an FTP user does not get delay benefits;
  797.    and host pairs with high volume of connections get treated the same
  798.    as a host pair with small number of connections and as a result gets
  799.    unfair services.
  800.  
  801.    A problem can be mentioned about Fair Queueing, though it is related
  802.    to implementation, and perhaps not properly part of a policy
  803.    discussion.  This is a concern that the resources (processing) used
  804.    for determining where to queue incoming packets would themselves be
  805.    subject to congestion, but not to the benefits of the Fair Queuing
  806.    discipline.  In a situation where the gateway processor was not
  807.    adequate to the demands on it, the gateway would need an alternative
  808.    policy for congestion control of the queue awaiting processing.
  809.    Clever implementation can probably find an efficient way to route
  810.    packets to the queues they belong in before other input processing is
  811.    done, so that processing resources can be controlled, too.  There is
  812.    in addition, the concern that bit-by-bit round FQ requires non-FCFS
  813.    queueing even within the same source destination pairs to allow for
  814.    fairness to different connections between these end systems.
  815.  
  816.    Another potential concern about Fair Queueing is whether it can scale
  817.    up to gateways with very large source-destination populations.  For
  818.    example, the state in a Fair Queueing implementation scales with the
  819.    number of active end-to-end paths, which will be high in backbone
  820.    gateways.
  821.  
  822. 3.5.2  Stochastic Fairness Queuing
  823.  
  824.    Stochastic Fairness Queueing (SFQ) has been suggested as a technique
  825.    [McK90] to address the implementation issues relating to Fair
  826.    Queueing.  The first overhead that is reduced is that of looking up
  827.    the source-destination address pair in an incoming packet and
  828.    determining which queue that packet will have to be placed in.  SFQ
  829.    does not require as many memory accesses as Fair Queueing to place
  830.    the packet in the appropriate queue.  SFQ is thus claimed to be more
  831.    amenable to implementation for high-speed networks [McK90].
  832.  
  833.    SFQ uses a simple hash function to map from the source-destination
  834.    address pair to a fixed set of queues.  Since the assignment of an
  835.    address pair to a queue is probabilistic, there is the likelihood of
  836.    multiple address pairs colliding and mapping to the same queue.  This
  837.    would potentially degrade the additional fairness that is gained with
  838.    Fairness Queueing.  If two or more address pairs collide, they would
  839.  
  840.  
  841.  
  842. Performance and Congestion Control Working Group               [Page 15]
  843.  
  844. RFC 1254           Gateway Congestion Control Survey         August 1991
  845.  
  846.  
  847.    continue to do so.  To deal with the situation when such a collision
  848.    occurs, SFQ periodically perturbs the hash function so that these
  849.    address pairs will be unlikely to collide subsequently.
  850.  
  851.    The price paid for achieving this implementation efficiency is that
  852.    SFQ requires a potentially large number of queues (we must note
  853.    however, that these queues may be organized orthogonally from the
  854.    buffers in which packets are stored. The buffers themselves may be
  855.    drawn from a common pool, and buffers in each queue organized as a
  856.    linked list pointed to from each queue header).  For example, [McK90]
  857.    indicates that to get good, consistent performance, we may need to
  858.    have up to 5 to 10 times the number of active source-destination
  859.    pairs. In a typical gateway, this may require around 1000 to 2000
  860.    queues.
  861.  
  862.    [McK90] reports simulation results with SFQ. The particular hash
  863.    function that is studied is using the HDLC's cyclic redundancy check
  864.    (CRC).  The hash function is perturbed by multiplying each byte by a
  865.    sequence number in the range 1 to 255 before applying the CRC.  The
  866.    metric considered is the standard deviation of the number of packets
  867.    output per source-destination pair.  A perfectly fair policy would
  868.    have a standard deviation of zero and an unfair policy would have a
  869.    large standard deviation.  In the example studied (which has up to 20
  870.    source-destination (s-d) pairs going through a single overloaded
  871.    gateway), SFQ with 1280 queues (i.e., 64 times the number of source-
  872.    destination pairs), approaches about 3 times the standard deviation
  873.    of Fairness Queueing.  This must be compared to a FCFS queueing
  874.    discipline having a standard deviation which is almost 175 times the
  875.    standard deviation of Fairness Queueing.
  876.  
  877.    It is conjectured in [McK90] that a good value for the interval in
  878.    between perturbations of the hash function appears to be in the area
  879.    between twice the queue flush time of the stochastic fairness queue
  880.    and one-tenth the average conversation time between a source-
  881.    destination pair.
  882.  
  883.    SFQ also may alleviate the anticipated scaling problems that may be
  884.    an issue with Fair Queueing by not strictly requiring the number of
  885.    queues equal to the possible source-destination pairs that may be
  886.    presenting a load on a particular gateway. However, SFQ achieves this
  887.    property by trading off some of the fairness for implementation
  888.    efficiency.
  889.  
  890.    [McK90] examines alternative strategies for implementation of Fair
  891.    Queueing and SFQ and estimates their complexity on common hardware
  892.    platforms (e.g., a Motorola 68020).  It is suggested that mapping an
  893.    IP address pair may require around 24 instructions per packet for
  894.    Fair Queueing in the best case; in contrast SFQ requires 10
  895.  
  896.  
  897.  
  898. Performance and Congestion Control Working Group               [Page 16]
  899.  
  900. RFC 1254           Gateway Congestion Control Survey         August 1991
  901.  
  902.  
  903.    instructions in the worst case.  The primary source of this gain is
  904.    that SFQ avoids a comparison of the s-d address pair on the packet to
  905.    the identity of the queue header.  The relative benefit of SFQ over
  906.    Fair Queueing is anticipated to be greater when the addresses are
  907.    longer.
  908.  
  909.    SFQ offers promising implemenatation benefits.  However, the price to
  910.    be paid in terms of having a significantly larger number of queues
  911.    (and the consequent data structures and their management) than the
  912.    number of s-d pairs placing a load on the gateway is a concern.  SFQ
  913.    is also attractive in that it may be used in concert with the DEC-bit
  914.    scheme for Selective Feedback Congestion Indication to provide
  915.    fairness as well as congestion avoidance.
  916.  
  917. 4.  END-SYSTEM CONGESTION CONTROL POLICIES
  918.  
  919.    Ideally in gateway congestion control, the end-system transport
  920.    entities adjust (decrease) their demand in response to control
  921.    exerted by the gateway.  Schemes have been put in practice for
  922.    transport entities to adjust their demand dynamically in response to
  923.    congestion feedback.  To accomplish this, in general, they call for
  924.    the user to gradually increase demand until information is received
  925.    that the load on the gateway is too high.  In response to this
  926.    information, the user decreases load, then begins an exploratory
  927.    increases again.  This cycle is repeated continuously, with the goal
  928.    that the total demand will oscillate around the optimal level.
  929.  
  930.    We have already noted that a Slow-start connection may give up
  931.    considerable bandwidth when sharing a gateway with aggressive
  932.    transport entities.  There is currently no way to enforce that end-
  933.    systems use a congestion avoidance policy, though the Host
  934.    Requirements RFC [HR89] has defined Slow-start as mandatory for TCP.
  935.    This adverse effect on Slow-start connections is mitigated by the
  936.    Fair Queueing policy.  Our conclusions discuss further the
  937.    coexistence of different end-system strategies.
  938.  
  939.    This section briefly presents two fielded transport congestion
  940.    control and avoidance schemes, Slow-start and End-System Congestion
  941.    Indication, and the responses by means of which they cooperate with
  942.    gateway policies.  They both use the control paradigm described
  943.    above.  Slow-start, as mentioned in Section 1, was developed by
  944.    [Jac88], and widely fielded in the BSD TCP implementation.  End-
  945.    system Congestion Indication was developed by [JRC87].  It is fielded
  946.    in DEC's Digital Network Architecture, and has been specified as well
  947.    for ISO TP4 [NIST88].
  948.  
  949.    Both Slow-start and End-system Congestion Indication view the
  950.    relationship between users and gateways as a control system. They
  951.  
  952.  
  953.  
  954. Performance and Congestion Control Working Group               [Page 17]
  955.  
  956. RFC 1254           Gateway Congestion Control Survey         August 1991
  957.  
  958.  
  959.    have feedback and control components, the latter further broken down
  960.    into a procedure bringing a new connection to equilibrium, and a
  961.    procedure to maintain demand at the proper level.  They make use of
  962.    policies for increasing and decreasing the transport sender's window
  963.    size.  These require the sender to follow a set of self-restraining
  964.    rules which dynamically adjust the send window whenever congestion is
  965.    sensed.
  966.  
  967.    A predecessor of these, CUTE, developed by [Jai86], introduced the
  968.    use of retransmission timeouts as congestion feedback.  The Slow-
  969.    start scheme was also designed to use timeouts in the same way.  The
  970.    End-System policies for Congestion Indication use the Congestion
  971.    Experienced Bit delivered in the network header as the primary
  972.    feedback, but retransmission timeouts also provoke an end-system
  973.    congestion response.
  974.  
  975.    In reliable transport protocols like TCP and TP4, the retransmission
  976.    timer must do its best to satisfy two conflicting goals. On one hand,
  977.    the timer must rapidly detect lost packets. And, on the other hand,
  978.    the timer must minimize false alarms.  Since the retransmit timer is
  979.    used as a congestion signal in these end-system policies, it is all
  980.    the more important that timeouts reliably correspond to packet drops.
  981.    One important rule for retransmission is to avoid bad sampling in the
  982.    measurements that will be used in estimating the round-trip delay.
  983.    [KP87] describes techniques to ensure accurate sampling.  The Host
  984.    Requirements RFC [HR89] makes these techniques mandatory for TCP.
  985.  
  986.    The utilization of a resource can be defined as the ratio of its
  987.    average arrival rate to its mean service rate. This metric varies
  988.    between 0 and 1.0. In a state of congestion, one or more resources
  989.    (link, gateway buffer, gateway CPU) has a utilization approaching
  990.    1.0.  The average delay (round trip time) and its variance approach
  991.    infinity. Therefore, as the utilization of a network increases, it
  992.    becomes increasingly important to take into account the variance of
  993.    the round trip time in estimating it for the retransmission timeout.
  994.  
  995.    The TCP retransmission timer is based on an estimate of the round
  996.    trip time.  [Jac88] calls the round trip time estimator the single
  997.    most important feature of any protocol implementation that expects to
  998.    survive a heavy load. The retransmit timeout procedure in RFC-793
  999.    [Pos81b] includes a fixed parameter, beta, to account for the
  1000.    variance in the delay. An estimate of round trip time using the
  1001.    suggested values for beta is valid for a network which is at most 30%
  1002.    utilized.  Thus, the RFC-793 retransmission timeout estimator will
  1003.    fail under heavy congestion, causing unnecessary retransmissions that
  1004.    add to the load, and making congestive loss detection impossible.
  1005.  
  1006.    Slow-start TCP uses the mean deviation as an estimate of the variance
  1007.  
  1008.  
  1009.  
  1010. Performance and Congestion Control Working Group               [Page 18]
  1011.  
  1012. RFC 1254           Gateway Congestion Control Survey         August 1991
  1013.  
  1014.  
  1015.    to improve the estimate. As a rough view of what happens with the
  1016.    Slow-start retransmission calculation, delays can change by
  1017.    approximately two standard deviations without the timer going off in
  1018.    a false alarm.  The same method of estimation may be applicable to
  1019.    TP4.  The procedure is:
  1020.  
  1021.            Error     = Measured - Estimated
  1022.            Estimated = Estimated + Gain_1 * Error
  1023.            Deviation = Deviation + Gain_2 * (|Error| - Deviation)
  1024.            Timeout   = Estimated + 2 * Deviation
  1025.  
  1026.            Where:  Gain_1, Gain_2 are gain factors.
  1027.  
  1028. 4.1  Response to No Policy in Gateway
  1029.  
  1030.    Since packets must be dropped during congestion because of the finite
  1031.    buffer space, feedback of congestion to the users exists even when
  1032.    there is no gateway congestion policy.  Dropping the packets is an
  1033.    attempt to recover from congestion, though it needs to be noted that
  1034.    congestion collapse is not prevented by packet drops if end-systems
  1035.    accelerate their sending rate in these conditions.  The accurate
  1036.    detection of congestive loss by all retransmission timers in the
  1037.    end-systems is extremely important for gateway congestion recovery.
  1038.  
  1039. 4.2  Response to Source Quench
  1040.  
  1041.    Given that a Source Quench message has ambiguous meaning, but usually
  1042.    is issued for congestion recovery, the response of Slow-start to a
  1043.    Source Quench is to return to the beginning of the cycle of increase.
  1044.    This is an early response, since the Source Quench on overflow will
  1045.    also lead to a retransmission timeout later.
  1046.  
  1047. 4.3 Response to Random Drop
  1048.  
  1049.    The end-system's view of Random Drop is the same as its view of loss
  1050.    caused by overflow at the gateway. This is a drawback of the use of
  1051.    packet drops as congestion feedback for congestion avoidance: the
  1052.    decrease policy on congestion feedback cannot be made more drastic
  1053.    for overflows than for the drops the gateway does for congestion
  1054.    avoidance.  Slow-start responds rapidly to gateway feedback.  In a
  1055.    case where the users are cooperating (all Slow-start), a desired
  1056.    outcome would be that this responsiveness would lead quickly to a
  1057.    decreased probability of drop.  There would be, as an ideal, a self-
  1058.    adjusting overall amount of control.
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Performance and Congestion Control Working Group               [Page 19]
  1067.  
  1068. RFC 1254           Gateway Congestion Control Survey         August 1991
  1069.  
  1070.  
  1071. 4.4  Response to Congestion Indication
  1072.  
  1073.    Since the Congestion Indication mechanism attempts to keep gateways
  1074.    uncongested, cooperating end-system congestion control policies need
  1075.    not reduce demand as much as with other gateway policies.  The
  1076.    difference between the Slow-start response to packet drops and the
  1077.    End-System Congestion Indication response to Congestion Experienced
  1078.    Bits is primarily in the decrease policy.  Slow-start decreases the
  1079.    window to one packet on a retransmission timeout.  End-System
  1080.    Congestion Indication decreases the window by a fraction (for
  1081.    instance, to 7/8 of the original value), when the Congestion
  1082.    Experienced Bit is set in half of the packets in a sample spanning
  1083.    two round-trip times (two windows full).
  1084.  
  1085. 4.5  Response to Fair Queuing
  1086.  
  1087.    A Fair Queueing policy may issue control indications, as in the
  1088.    simulated Bit-Round Fair Queueing with DEC Bit, or it may depend only
  1089.    on the passive effects of the queueing.  When the passive control is
  1090.    the main effect (perhaps because most users are not responsive to
  1091.    control indications), the behavior of retransmission timers will be
  1092.    very important.  If retransmitting users send more packets in
  1093.    response to increases in their delay and drops, Fair Queueing will be
  1094.    prone to degraded performance, though collapse (zero throughput for
  1095.    all users) may be prevented for a longer period of time.
  1096.  
  1097. 5.  Conclusions
  1098.  
  1099.    The impact of users with excessive demand is a driving force as
  1100.    proposed gateway policies come closer to implementation.  Random Drop
  1101.    and Congestion Indication can be fair only if the transport entities
  1102.    sharing the gateway are all cooperative and reduce demand as needed.
  1103.    Within some portions of the Internet, good behavior of end-systems
  1104.    eventually may be enforced through administration.  But for various
  1105.    reasons, we can expect non-cooperating transports to be a persistent
  1106.    population in the Internet.  Congestion avoidance mechanisms will not
  1107.    be deployed all at once, even if they are adopted as standards.
  1108.    Without enforcement, or even with penalties for excessive demand,
  1109.    some end-systems will never implement congestion avoidance
  1110.    mechanisms.
  1111.  
  1112.    Since it is outside the context of any of the gateway policies, we
  1113.    will mention here a suggestion for a relatively small-scale response
  1114.    to users which implement especially aggressive policies. This has
  1115.    been made experimentally by [Jac89].  It would implement a low
  1116.    priority queue, to which the majority of traffic is not routed.  The
  1117.    candidate traffic to be queued there would be identified by a cache
  1118.    of recent recipients of whatever control indications the gateway
  1119.  
  1120.  
  1121.  
  1122. Performance and Congestion Control Working Group               [Page 20]
  1123.  
  1124. RFC 1254           Gateway Congestion Control Survey         August 1991
  1125.  
  1126.  
  1127.    policy makes.  Remaining in the cache over multiple control intervals
  1128.    is the criterion for being routed to the low priority queue.  In
  1129.    approaching or established congestion, the bandwidth given to the
  1130.    low-service queue is decreased.
  1131.  
  1132.    The goal of end-system cooperation itself has been questioned.  As
  1133.    [She89] points out, it is difficult to define.  A TCP implementation
  1134.    that retransmits before it determines that has been loss indicated
  1135.    and in a Go-Back-N manner is clearly non-cooperating.  On the other
  1136.    hand, a transport entity with selective acknowledgement may demand
  1137.    more from the gateways than TCP, even while responding to congestion
  1138.    in a cooperative way.
  1139.  
  1140.    Fair Queueing maintains its control of allocations regardless of the
  1141.    end-system congestion avoidance policies.  [Nag85] and [DKS89] argue
  1142.    that the extra delays and congestion drops that result from
  1143.    misbehavior could work to enforce good end-system policies.  Are the
  1144.    rewards and penalties less sharply defined when one or more
  1145.    misbehaving systems cause the whole gateway's performance to be less?
  1146.    While the tax on all users imposed by the "over-users" is much less
  1147.    than in gateways with other policies, how can it be made sufficiently
  1148.    low?
  1149.  
  1150.    In the sections on Selective Feedback Congestion Indication and Bit-
  1151.    Round Fair Queueing we have pointed out that more needs to be done on
  1152.    two particular fronts:
  1153.  
  1154.       How can increased computational overhead be avoided?
  1155.  
  1156.       The allocation of resources to source-destination pairs is, in
  1157.       many scenarios, unfair to individual users. Bit-Round Fair
  1158.       Queueing offers a potential administrative remedy, but even if it
  1159.       is applied, how should the unequal allocations be propagated
  1160.       through multiple gateways?
  1161.  
  1162.    The first question has been taken up by [McK90].
  1163.  
  1164.    Since Selective Feedback Congestion Indication (or Congestion
  1165.    Indication used with Fair Queueing) uses a network bit, its use in
  1166.    the Internet requires protocol support; the transition of some
  1167.    portions of the Internet to OSI protocols may make such a change
  1168.    attractive in the future.  The interactions between heterogeneous
  1169.    congestion control policies in the Internet will need to be explored.
  1170.  
  1171.    The goals of Random Drop Congestion Avoidance are presented in this
  1172.    survey, but without any claim that the problems of this policy can be
  1173.    solved.  These goals themselves, of uniform, dynamic treatment of
  1174.    users (streams/flows), of low overhead, and of good scaling
  1175.  
  1176.  
  1177.  
  1178. Performance and Congestion Control Working Group               [Page 21]
  1179.  
  1180. RFC 1254           Gateway Congestion Control Survey         August 1991
  1181.  
  1182.  
  1183.    characteristics in large and loaded networks, are significant.
  1184.  
  1185. Appendix:  Congestion and Connection-oriented Subnets
  1186.  
  1187.    This section presents a recommendation for gateway implementation in
  1188.    an areas that unavoidably interacts with gateway congestion control,
  1189.    the impact of connection-oriented subnets, such as those based on
  1190.    X.25.
  1191.  
  1192.    The need to manage a connection oriented service (X.25) in order to
  1193.    transport datagram traffic (IP) can cause problems for gateway
  1194.    congestion control.  Being a pure datagram protocol, IP provides no
  1195.    information delimiting when a pair of IP entities need to establish a
  1196.    session between themselves.  The solution involves compromise among
  1197.    delay, cost, and resources.  Delay is introduced by call
  1198.    establishment when a new X.25 SVC (Switched Virtual Circuit) needs to
  1199.    be established, and also by queueing delays for the physical line.
  1200.    Cost includes any charges by the X.25 network service provider.
  1201.    Besides the resources most gateways have (CPU, memory, links), a
  1202.    maximum supported or permitted number of virtual circuits may be in
  1203.    contest.
  1204.  
  1205.    SVCs are established on demand when an IP packet needs to be sent and
  1206.    there is no SVC established or pending establishment to the
  1207.    destination IP entity.  Optionally, when cost considerations, and
  1208.    sufficient numbers of unused virtual circuits allow, redundant SVCs
  1209.    may be established between the same pair of IP entities.  Redundant
  1210.    SVCs can have the effect of improving performance when coping with
  1211.    large end-to-end delay, small maximum packet sizes and small maximum
  1212.    packet windows.  It is generally preferred though, to negotiate large
  1213.    packet sizes and packet windows on a single SVC.  Redundant SVCs must
  1214.    especially be discouraged when virtual circuit resources are small
  1215.    compared with the number of destination IP entities among the active
  1216.    users of the gateway.
  1217.  
  1218.    SVCs are closed after some period of inactivity indicates that
  1219.    communication may have been suspended between the IP entities.  This
  1220.    timeout is significant in the operation of the interface.  Setting
  1221.    the value too low can result in closing of the SVC even though the
  1222.    traffic has not stopped.  This results in potentially large delays
  1223.    for the packets which reopen the SVC and may also incur charges
  1224.    associated with SVC calls.  Also, clearing of SVCs is, by definition,
  1225.    nongraceful.  If an SVC is closed before the last packets are
  1226.    acknowledged, there is no guarantee of delivery.  Packet losses are
  1227.    introduced by this destructive close independent of gateway traffic
  1228.    and congestion.
  1229.  
  1230.    When a new circuit is needed and all available circuits are currently
  1231.  
  1232.  
  1233.  
  1234. Performance and Congestion Control Working Group               [Page 22]
  1235.  
  1236. RFC 1254           Gateway Congestion Control Survey         August 1991
  1237.  
  1238.  
  1239.    in use, there is a temptation to pick one to close (possibly using
  1240.    some Least Recently Used criterion).  But if connectivity demands are
  1241.    larger than available circuit resources, this strategy can lead to a
  1242.    type of thrashing where circuits are constantly being closed and
  1243.    reopened.  In the worst case, a circuit is opened, a single packet
  1244.    sent and the circuit closed (without a guarantee of packet delivery).
  1245.    To counteract this, each circuit should be allowed to remain open a
  1246.    minimum amount of time.
  1247.  
  1248.    One possible SVC strategy is to dynamically change the time a circuit
  1249.    will be allowed to remain open based on the number of circuits in
  1250.    use.  Three administratively controlled variables are used, a minimum
  1251.    time, a maximum time and an adaptation factor in seconds per
  1252.    available circuit.  In this scheme, a circuit is closed after it has
  1253.    been idle for a time period equal to the minimum plus the adaptation
  1254.    factor times the number of available circuits, limited by the maximum
  1255.    time.  By administratively adjusting these variables, one has
  1256.    considerable flexibility in adjusting the SVC utilization to meet the
  1257.    needs of a specific gateway.
  1258.  
  1259. Acknowledgements
  1260.  
  1261.    This paper is the outcome of discussions in the Performance and
  1262.    Congestion Control Working Group between April 1988 and July 1989.
  1263.    Both PCC WG and plenary IETF members gave us helpful reviews of
  1264.    earlier drafts.  Several of the ideas described here were contributed
  1265.    by the members of the PCC WG.  The Appendix was written by Art
  1266.    Berggreen.  We are particularly thankful also to Van Jacobson, Scott
  1267.    Shenker, Bruce Schofield, Paul McKenney, Matt Mathis, Geof Stone, and
  1268.    Lixia Zhang for participation and reviews.
  1269.  
  1270. References
  1271.  
  1272.    [DKS89] Demers, A., Keshav, S., and S. Shenker, "Analysis and
  1273.    Simulation of a Fair Queueing Algorithm", Proceedings of SIGCOMM '89.
  1274.  
  1275.    [Fin89] Finn, G., "A Connectionless Congestion Control Algorithm",
  1276.    Computer Communications Review, Vol. 19, No. 5, October 1989.
  1277.  
  1278.    [Gar87] Gardner, M., "BBN Report on the ARPANET", Proceedings of the
  1279.    McLean IETF, SRI-NIC IETF-87/3P, July 1987.
  1280.  
  1281.    [GREQ87] Braden R., and J. Postel, "Requirements for Internet
  1282.    Gateways", RFC 1009, USC/Information Sciences Institute, June 1987.
  1283.  
  1284.    [HREQ89] Braden R., Editor, "Requirements for Internet Hosts --
  1285.    Communications Layers", RFC 1122, Internet Engineering Task Force,
  1286.    October 1989.
  1287.  
  1288.  
  1289.  
  1290. Performance and Congestion Control Working Group               [Page 23]
  1291.  
  1292. RFC 1254           Gateway Congestion Control Survey         August 1991
  1293.  
  1294.  
  1295.    [Has90] Hashem, E., "Random Drop Congestion Control", M.S. Thesis,
  1296.    Massachusetts Institute of Technology, Department of Computer
  1297.    Science, 1990.
  1298.  
  1299.    [Jac88] Jacobson, V., "Congestion Avoidance and Control", Proceedings
  1300.    of SIGCOMM '88.
  1301.  
  1302.    [Jac89] Jacobson, V., "Presentations to the IETF Performance and
  1303.    Congestion Control Working Group".
  1304.  
  1305.    [Jaf81] Jaffe, J., "Bottleneck Flow Control", IEEE Transactions on
  1306.    Communications, COM-29(7), July, 1981.
  1307.  
  1308.    [Jai86] Jain, R., "A Timeout-based Congestion Control Scheme for
  1309.    Window Flow-controlled Networks", IEEE Journal on Selected Areas in
  1310.    Communications, SAC-4(7), October 1986.
  1311.  
  1312.    [JRC87] Jain, R., Ramakrishnan, K., and D. Chiu, "Congestion
  1313.    Avoidance in Computer Networks With a Connectionless Network Layer",
  1314.    Technical Report DEC-TR-506, Digital Equipment Corporation.
  1315.  
  1316.    [Kle79] Kleinrock, L., "Power and Deterministic Rules of Thumb for
  1317.    Probabilistic Problems in Computer Communications",  Proceedings of
  1318.    the ICC '79.
  1319.  
  1320.    [KP87] Karn, P., and C. Partridge, "Improving Round Trip Estimates in
  1321.    Reliable Transport Protocols", Proceedings of SIGCOMM '87.
  1322.  
  1323.    [Man90] Mankin, A., "Random Drop Congestion Control", Proceedings of
  1324.    SIGCOMM '90.
  1325.  
  1326.    [McK90] McKenney, P., "Stochastic Fairness Queueing", Proceedings of
  1327.    INFOCOM '90.
  1328.  
  1329.    [Nag84] Nagle, J., "Congestion Control in IP/TCP Internetworks", RFC
  1330.    896, FACC Palo Alto, 6 January 1984.
  1331.  
  1332.    [Nag85] Nagle, J., "On Packet Switches With Infinite Storage", RFC
  1333.    970, FACC Palo Alto, December 1985.
  1334.  
  1335.    [NIST88] NIST, "Stable Implementation Agreements for OSI Protocols,
  1336.    Version 2, Edition 1", National Institute of Standards and Technology
  1337.    Special Publication 500-162, December 1988.
  1338.  
  1339.    [Pos81a] Postel, J., "Internet Control Message Protocol - DARPA
  1340.    Internet Program Protocol Specification", RFC-792, USC/Information
  1341.    Sciences Institute, September 1981.
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Performance and Congestion Control Working Group               [Page 24]
  1347.  
  1348. RFC 1254           Gateway Congestion Control Survey         August 1991
  1349.  
  1350.  
  1351.    [Pos81b] Postel, J., "Transmission Control Protocol - DARPA Internet
  1352.    Program Protocol Specification", RFC-793, DARPA, September 1981.
  1353.  
  1354.    [RJC87] Ramakrishnan, K., Jain, R., and D. Chiu, "A Selective Binary
  1355.    Feedback Scheme for General Topologies", Technical Report DEC-TR-510,
  1356.    Digital Equipment Corporation.
  1357.  
  1358.    [She89] Shenker, S., "Correspondence with the IETF Performance and
  1359.    Congestion Control Working Group".
  1360.  
  1361.    [Sp89] Spector, A., and M. Kazar, "Uniting File Systems", Unix
  1362.    Review, Vol.  7, No. 3, March 1989.
  1363.  
  1364.    [Zha89] Zhang, L., "A New Architecture for Packet Switching Network
  1365.    Protocols", Ph.D Thesis, Massachusetts Institute of Technology,
  1366.    Department of Computer Science, 1989.
  1367.  
  1368. Security Considerations
  1369.  
  1370.    Security issues are not discussed in this memo.
  1371.  
  1372. Authors' Addresses
  1373.  
  1374.    Allison Mankin
  1375.    The MITRE Corporation
  1376.    M/S W425
  1377.    7525 Colshire Drive
  1378.    McLean, VA  22102
  1379.  
  1380.    Email: mankin@gateway.mitre.org
  1381.  
  1382.  
  1383.    K.K. Ramakrishnan
  1384.    Digital Equipment Corporation
  1385.    M/S LKG1-2/A19
  1386.    550 King Street
  1387.    Littleton, MA  01754
  1388.  
  1389.    Email: rama@kalvi.enet.dec.com
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Performance and Congestion Control Working Group               [Page 25]
  1403.